This specification relates to one-time-programmable memory emulation.
Devices are being used to store more information electronically. Some of the data being stored is sensitive data. For example, medical records and financial information can be stored in devices to increase accessibility to the information by authorized users. The sensitivity of the data being stored can be considered when determining the type of device and security measures that are implemented to protect the data.
An example device that is used to store information electronically is a smart card. Smart cards can store information in memory that is embedded in the card. The memory can be used to store financial information, medical records, identification information, as well as other sensitive personal data. In addition to storing sensitive personal data, Smart cards can also store sensitive program data. Examples of sensitive program data can include parameter tables used to configure an operating system, a jump table that can be used for software patches, information related to life cycle management of the device, master keys for cryptographic applications, etc.
Once information is stored in the memory of the smart card, the card can be read by computing devices that are equipped with peripherals that can interface with the smart cards. One-time-programmable memory can be used to increase the security of data because once the data has been written to memory it cannot be altered. For example, one or more pages of OTP memory can be implemented with other pages of non-volatile memory. However, using one-time-programmable data can sometimes result in inefficiencies related to the use of available memory.